<script>on mouseUpglobal stacks,bsmsprefs,lysact,bsmskeep,bsmscoll,lysSharedput empty into mycatsif the optionKey is down or the commandKey is down or the shiftKey is down thentogglevisexit mouseUpend ifset lockmessages to trueset lockscreen to trueset lockrecent to trueset cursor to watchpush cardput "-- Append the search paths." -- ∆put the long name of this stack into cheminput value(word 2 of chemin) into cheminset the itemdelimiter to colondelete last item of cheminput chemin into chemin0put chemin & colon into cheminput chemin & return into lescheminsput field "chemins" into cheminsput field "sommet" into sommetput field "TalkStacks" into TalkStacksput the number of lines in chemins into chlinesrepeat with i = chlines down to 1put chemin0 into chemin2put the number of items in chemin0 into c2repeat with j = 1 to c2if last item of chemin2 is second item of line i of chemins thendelete last item of chemin2put chemin2 & (line i of chemins) & return after lescheminsdelete line i of cheminsexit repeatelse delete last item of chemin2end repeatend repeatput the number of lines in chemins into chlinesif chlines > 0 thenrepeat with i = chlines down to 1put chemin0 & (line i of chemins) & return after lescheminsend repeatend ifput the number of lines in leschemins into chemlinesset the itemdelimiter to commago homego card "stacks"put field "paths" into thepathsif thepaths is not empty thenif last char of thepaths is not return then put return after thepathsrepeat with i = chemlines down to 1repeat with j = 1 to the number of lines in thepathsif line i of leschemins is line j of field "paths" thendelete line i of lescheminsexit repeatend ifend repeatend repeatend ifif leschemins is not empty thenput leschemins after thepathsput thepaths into stacksput thepaths into field "paths"end ifif sommet is not empty or talkstacks is not empty thenif there is a stack "LYSLink" thengo stack "LYSLink"if TalkStacks is not empty thenput "-- Install HyperTalk stacks"if last char of TalkStacks is not return then put return after TalkStacksput field "lysShared" after TalkStackssort TalkStacksput the number of lines in TalkStacks into elLinesrepeat with i = elLines down to 2if line i of TalkStacks is empty or line i of TalkStacks is line (i-1) of TalkStacks then delete line i of TalkStacksend repeatput TalkStacks into field "lysShared"put TalkStacks into lysSharedend ifif bsmskeep is true thenif TalkStacks is not empty thenrepeat with i = 1 to the number of lines in LysSharedif line i of TalkStacks is not empty then lysuse line i of TalkStacksend repeatend ifend ifif sommet is not empty thenput "-- Install Contexts"if last char of sommet is not return then put return after sommetput field "bsmscoll" into bsmscollput sommet before bsmscollsort bsmscollput the number of lines in bsmscoll into elLinesrepeat with i = elLines down to 2if line i of bsmscoll is empty or line i of bsmscoll is line (i-1) of bsmscoll then delete line i of bsmscollend repeatput bsmscoll into field "bsmscoll"put (line 1 of sommet) into field "bsmsprefs"if there is a stack (line 1 of sommet) then go stack (line 1 of sommet)if there is a field "mycats" then put field "mycats" into mycatsif bsmskeep is true thenput (line 1 of sommet) into bsmsprefsloadcontextdolysdobsmsbsmsend ifend ifelseanswer "The “LYSLink” stack wasn’t found. The installation cannot be completed. Try installing with “Dock Programs Installer” first."pop cardexit to hypercardend ifend ifpop cardset lockmessages to falseset lockscreen to falseset lockrecent to falsehide msganswer "Installation is complete." with "OK" -- ∆end mouseUp</script>
</part>
<part>
<id>4</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <false /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>2</left>
<top>161</top>
<right>318</right>
<bottom>270</bottom>
</rect>
<style>scrolling</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name>chemins</name>
<script>on closeFieldput the number of lines in me into thelinesif thelines is not 0 thenrepeat with i = thelines down to 1if line i of me is empty then delete line i of meend repeatif the number of lines in me is not 0 thenrepeat while last char of me is returndelete last char of meend repeatput return after meend ifend ifpass closeFieldend closefield</script>
</part>
<part>
<id>5</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <true /> </sharedText>
<fixedLineHeight> <false /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>2</left>
<top>1</top>
<right>217</right>
<bottom>18</bottom>
</rect>
<style>rectangle</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name>lab1</name>
<script>on mouseUpput empty into theprefsset lockmessages to truepush cardrepeat foreveranswer file "Add a Context stack to the list:" of type stackif it is empty then exit repeatput it into tryitgo stack tryitif there is a field "mycats" thenanswer "Add this stack to the list?" with "No","Yes"if it is "Yes" thenput short name of this stack into tryitput tryit & return after theprefsend ifelse answer "Not a Context stack"end repeatpop cardif theprefs is not empty then put theprefs after field "sommet"end mouseUp</script>
</part>
<part>
<id>6</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <true /> </sharedText>
<fixedLineHeight> <false /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>2</left>
<top>143</top>
<right>318</right>
<bottom>160</bottom>
</rect>
<style>rectangle</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name>lab2</name>
<script>on mouseUpput field "chemins" into lescheminsput the number of lines in leschemins into thelinesif thelines is not 0 thenrepeat with i = thelines down to 1if line i of leschemins is empty then delete line i of lescheminsend repeatend ifif the number of lines in leschemins is not 0 thenrepeat while last char of leschemins is returndelete last char of lescheminsend repeatput return after lescheminsput return before lescheminsend ifput empty into theprefsput the long name of this stack into cheminput word 2 of chemin into chemindelete last char of chemindelete first char of cheminset the itemdelimiter to colondelete last item of cheminput the number of items in chemin into chemitemsrepeat foreveranswer file "The partial path to every stack you select will be added to the list:" of type stackif it is empty then exit repeatput it into tryitdelete last item of tryitif tryit is not chemin thenif item 1 to chemitems of tryit is chemin thenput item chemitems+1 to (the number of items in tryit) of tryit into tryitput colon before tryitput colon after tryitif return & tryit & return is not in leschemins thenput tryit & return after lescheminsend ifelseput true into nowayhozayrepeat with i=chemitems down to 2if item 1 to i of tryit is item 1 to i of chemin thenput item i to (the number of items in tryit) of tryit into tryitput colon before tryitput colon after tryitif return & tryit & return is not in leschemins thenput tryit & return after lescheminsend ifput false into nowayhozayexit repeatend ifend repeatif nowayhozay is true thenput "The Installer can only handle partial paths to folders located on the same branch as the Installer." into promptanswer promptend ifend ifend ifend repeatif leschemins is not empty and line 1 of leschemins is empty then delete line 1 of lescheminsput leschemins into field "chemins"end mouseUp</script>
</part>
<part>
<id>7</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <true /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>2</left>
<top>19</top>
<right>217</right>
<bottom>71</bottom>
</rect>
<style>scrolling</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <true /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name>Sommet</name>
<script>on closeFieldput the number of lines in me into thelinesif thelines is not 0 thenrepeat with i = thelines down to 1if line i of me is empty then delete line i of meend repeatif the number of lines in me is not 0 thenrepeat while last char of me is returndelete last char of meend repeatput return after meend ifend ifpass closeFieldend closefield</script>
</part>
<part>
<id>8</id>
<type>button</type>
<visible> <false /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>110</left>
<top>105</top>
<right>210</right>
<bottom>127</bottom>
</rect>
<style>roundrect</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <false /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Chicago</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>bsmssys</name>
<script></script>
</part>
<part>
<id>1</id>
<type>field</type>
<visible> <true /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <true /> </sharedText>
<fixedLineHeight> <false /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>3</left>
<top>26</top>
<right>316</right>
<bottom>270</bottom>
</rect>
<style>rectangle</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <true /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Palatino</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name>explik</name>
<script></script>
</part>
<part>
<id>9</id>
<type>button</type>
<visible> <false /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>247</left>
<top>69</top>
<right>291</right>
<bottom>101</bottom>
</rect>
<style>transparent</style>
<showName> <false /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <true /> </autoHighlight>
<sharedHighlight> <false /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>14767</icon>
<textAlign>center</textAlign>
<font>Chicago</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>Installation Stack</name>
<script>on mouseUpglobal bsmskeepif bsmskeep is not empty then stdlink "","Configuring the installer"else answer "Start Dock hypertext first"end mouseUp</script>
</part>
<part>
<id>10</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <true /> </sharedText>
<fixedLineHeight> <false /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>2</left>
<top>72</top>
<right>217</right>
<bottom>89</bottom>
</rect>
<style>rectangle</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name>lab3</name>
<script>on mouseUpput empty into theprefsset lockmessages to truepush cardrepeat foreveranswer file "Add a HyperTalk stack to the list:" of type stackif it is empty then exit repeatput it into tryitgo stack tryitanswer "Add this stack to the list?" with "No","Yes"if it is "Yes" thenput short name of this stack into tryitput tryit & return after theprefsend ifend repeatpop cardif theprefs is not empty then put theprefs after field "TalkStacks"end mouseUp</script>
</part>
<part>
<id>11</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <true /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <true /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <false /> </lockText>
<rect>
<left>2</left>
<top>90</top>
<right>217</right>
<bottom>142</bottom>
</rect>
<style>scrolling</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <true /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>9</textSize>
<textStyle>plain</textStyle>
<textHeight>12</textHeight>
<name>TalkStacks</name>
<script>on closeFieldput the number of lines in me into thelinesif thelines is not 0 thenrepeat with i = thelines down to 1if line i of me is empty then delete line i of meend repeatif the number of lines in me is not 0 thenrepeat while last char of me is returndelete last char of meend repeatput return after meend ifend ifpass closeFieldend closefield</script>